home *** CD-ROM | disk | FTP | other *** search
/ APDL Other Worlds / APDL Other Worlds Collection.iso / SF3000 / Extras / CBlibrary / c / FopenCount < prev    next >
Encoding:
Text File  |  2003-10-16  |  1.5 KB  |  55 lines

  1. /*
  2.  * CBLibrary - FopenCount
  3.  * Copyright (C) 2003  Chris Bazley
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Lesser General Public
  7.  * License as published by the Free Software Foundation; either
  8.  * version 2.1 of the License, or (at your option) any later version.
  9.  *
  10.  * This library is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * Lesser General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU Lesser General Public
  16.  * License along with this library; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  */
  19.  
  20. /* Keep a count of the number of files open */
  21.  
  22. /* ANSI library headers */
  23. #include <stdio.h>
  24. #include <assert.h>
  25.  
  26. /* Other headers */
  27. #include "FopenCount.h"
  28.  
  29. static unsigned int fopen_count = 0;
  30.  
  31. FILE *fopen_inc(const char *filename, const char *mode)
  32. {
  33.   /* Open a file, incrementing the counter if successful */
  34.   FILE *f = fopen(filename, mode);
  35.   if(f != NULL)
  36.     fopen_count++;
  37.   return f;
  38. }
  39.  
  40. int fclose_dec(FILE *stream)
  41. {
  42.   /* Close a file, decrementing the counter if successful */
  43.   int f = fclose(stream);
  44.   if(f != EOF)
  45.     fopen_count--;
  46.   assert(fopen_count >= 0);
  47.   return f;
  48. }
  49.  
  50. unsigned int fopen_num(void)
  51. {
  52.   /* Return the number of files currently open */
  53.   return fopen_count;
  54. }
  55.